home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b5.d64
/
read'dir'part2.l
< prev
next >
Wrap
Text File
|
2007-02-28
|
2KB
|
57 lines
9000 //
9010 //6 READ DIRECTORY ROUTINES FOLLOW
9020 //
9030 PROC DIR'HEADER(D'FILE,REF FILE'END,REF D'NAME$,REF D'ID$) CLOSED
9040 DISK'GET'SKIP(142,D'FILE,FILE'END)
9050 DISK'GET'STRING(D'NAME$,16,D'FILE,FILE'END)
9060 DISK'GET'SKIP(2,D'FILE,FILE'END)
9070 DISK'GET'STRING(D'ID$,2,D'FILE,FILE'END)
9080 DISK'GET'SKIP(92,D'FILE,FILE'END)
9090 ENDPROC DIR'HEADER
9100 //
9110 //
9120 PROC NEXT'FILE(D'FILE,REF F'END,REF FN$,REF FT#,REF FB#,REF BC) CLOSED
9130 FT#:=GET'TYPE#(D'FILE,F'END)
9140 GET'NAME(D'FILE,F'END,FN$)
9150 FB#:=GET'BLOCKS#(D'FILE,F'END)
9160 CHECK'DIR'CYCLE(D'FILE,F'END,BC)
9170 ENDPROC NEXT'FILE
9180 //
9190 //
9200 FUNC GET'TYPE#(D'FILE,REF FILE'END) CLOSED
9210 THIS'TYPE#:=DISK'GET(D'FILE,FILE'END)
9220 DISK'GET'SKIP(2,D'FILE,FILE'END)
9230 IF THIS'TYPE#<129 OR THIS'TYPE#>132 THEN THIS'TYPE#:=128 //FIX TYPE
9240 RETURN THIS'TYPE#
9250 ENDFUNC GET'TYPE#
9260 //
9270 //
9280 PROC GET'NAME(D'FILE,REF FILE'END,REF F'NAME$) CLOSED
9290 DISK'GET'STRING(F'NAME$,16,D'FILE,FILE'END)
9300 FOR SPACE#:=1 TO LEN(F'NAME$) DO
9310 IF ORD(F'NAME$(SPACE#))=160 THEN F'NAME$(SPACE#):=CHR$(32)
9320 ENDFOR SPACE#
9330 DISK'GET'SKIP(9,D'FILE,FILE'END)
9340 ENDPROC GET'NAME
9350 //
9360 //
9370 FUNC GET'BLOCKS#(D'FILE,REF FILE'END) CLOSED
9380 BLOCKS#:=DISK'GET(D'FILE,FILE'END)
9390 BLOCKS#:+256*DISK'GET(D'FILE,FILE'END)
9400 RETURN BLOCKS#
9410 ENDFUNC GET'BLOCKS#
9420 //
9430 //
9440 PROC CHECK'DIR'CYCLE(D'FILE,REF FILE'END,REF BLOCK'COUNT) CLOSED
9450 BLOCK'FLAG:=TRUE
9460 BLOCK'COUNT:+1
9470 IF BLOCK'COUNT=8 THEN
9480 BLOCK'COUNT:=0
9490 BLOCK'FLAG:=FALSE
9500 ENDIF
9510 IF BLOCK'FLAG THEN DISK'GET'SKIP(2,D'FILE,FILE'END)
9520 ENDPROC CHECK'DIR'CYCLE
9530 //
9540 // END OF READ DIRECTORY ROUTINES
9550 //